8530. Печать матрицы

 

Задана матрица n × n – назовем ее [1..n] × [1..n] массивом. Для заданных r и c выведите [1..r] × [1..c] массив (r строк и c столбцов исходного массива).

 

Вход. Первая строка содержит число n (1 ≤ n ≤ 100). Следующие строки содержат матрицу n × n. Последняя строка содержит два числа r и c (1 ≤ r, cn). Все числа в матрице не превышают по модулю 100.

 

Выход. Выведите матрицу r × c.

 

Пример входа 1

Пример выхода 1

4

1 2 3 4

5 6 7 8

9 1 2 3

4 5 6 7

3 2

1 2

5 6

9 1

 

 

Пример входа 2

Пример выхода 2

5

1 5 -3 2 6

6 3 34 5 8

10 12 3 18 -25

13 22 11 9 45

23 39 20 15 -49

4 3

1 5 -3

6 3 34

10 12 3

13 22 11

 

 

РЕШЕНИЕ

двумерный массив

 

Анализ алгоритма

Прочитаем входную матрицу в двумерный массив. Затем выведем ее r строк и c столбцов.

 

Реализация алгоритма

Объявим двумерный массив.

 

int m[101][101];

 

Читаем входную матрицу n × n.

 

scanf("%d", &n);

for (i = 1; i <= n; i++)

for (j = 1; j <= n; j++)

  scanf("%d", &m[i][j]);

 

Читаем значения r и c.

 

scanf("%d %d", &r, &c);

 

Выводим подматрицу r × c.

 

for (i = 1; i <= r; i++)

{

  for (j = 1; j <= c; j++)

    printf("%d ", m[i][j]);

  printf("\n");

}

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

    int m[][] = new int[n][n];

    for(int i = 0; i < n; i++)

    for(int j = 0; j < n; j++)

      m[i][j] = con.nextInt();

   

    int r = con.nextInt();

    int c = con.nextInt();

 

    for(int i = 0; i < r; i++)

    {

      for(int j = 0; j < c; j++)

        System.out.print(m[i][j] + " ");

      System.out.println();

    }

    con.close();

  }

}

 

Python реализация

 

n = int(input())

a = [[int(j) for j in input().split()] for i in range(n)]

r, c = map(int, input().split())

 

for i in range(r):

  for j in range(c):

    print(a[i][j],end = " ")

  print()